export function getPageTitle() {
    const appStore = useAppStore()
    return new Promise(resolve => {
        if (appStore.appTitle) {
            resolve(appStore.appTitle)
        } else {
            /*request({
             url: '/global/globalApplicationParameter/findApplicationTitle',
             method: 'get'
             }).then(res => {
             appStore.appTitle = res && res.data && res.data.result
             resolve(res.data.result)
             })*/
            appStore.appTitle = 'Geoserver服务+LeafletJs库'
            resolve('Geoserver服务+LeafletJs库')
        }
    })
}

// 从服务端获取登录风格[1-传统风格(用户名密码)，2-定制风格(手机号)]
export function getLoginStyle() {
    const appStore = useAppStore()
    return new Promise(resolve => {
        /*request({
         url: '/auth/params/getLoginStyle',
         method: 'get'
         }).then(async res => {
         const loginStyle = res?.data?.result || 1
         appStore.loginStyle = loginStyle
         resolve(loginStyle)
         })*/
        appStore.loginStyle = 1
        resolve(1)
    })
}

/**
 如果电脑没获取到，基本上是因为浏览器限制了，解除方法如下：
 解决方案：
 火狐(FireFox) 删除隐藏IP
 浏览器输入 about:config
 搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 )
 谷歌(Chrome) 删除隐藏IP
 浏览器输入：chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
 把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )
 eage浏览器删除隐藏ip
 浏览器输入: edge://flags/#enable-webrtc-hide-local-ips-with-mdns
 把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )
 * @param callback
 */
export function getUserIP(callback) {
    let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection
    let pc = new MyPeerConnection({
        iceServers: []
    })
    let noop = () => {
    }
    let localIPs = {}
    let ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g
    let iterateIP = (ip) => {
        if (!localIPs[ip]) {
            callback(ip)
        }
        localIPs[ip] = true
    }
    pc.createDataChannel('')
    pc.createOffer().then((sdp) => {
        sdp.sdp.split('\n').forEach(function (line) {
            if (line.indexOf('candidate') < 0) return
            line.match(ipRegex).forEach(iterateIP)
        })
        pc.setLocalDescription(sdp, noop, noop)
    }).catch(() => {
    })
    pc.onicecandidate = (ice) => {
        if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return
        ice.candidate.candidate.match(ipRegex).forEach(iterateIP)
    }
}
